/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package simhya.simengine.ode;

import simhya.dataprocessing.OdeDataCollector;
import simhya.model.flat.FlatModel;
import simhya.simengine.SimulationException;

/**
 *
 * @author luca
 */
public class OdeSimulator extends AbstractOdeSimulator {

    public OdeSimulator(FlatModel model, OdeDataCollector collector) {
        super(model, collector);
        //ignore delays and continue
//        if (model.containsDelayedTransitions())
//            throw new SimulationException("Ode simulators do not support delays");
        if (model.containsInstantaneousTransitions() || model.containsTimedTransitions())
            throw new SimulationException("Wrong integrator");
        if (model.containsNonContinuouslyApproximableStochasticTransitions())
            throw new SimulationException("There are stochastic transitions not continously approximable, use hybrid simulator");
        if (model.containsGuardedTransitions())
            ;
        else
            this.function = new PureOdeFunction(model);
    }


    


}
